package com.usdt.system.service.cp;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.usdt.system.domain.resp.BatchClueRespVO;
import com.usdt.system.domain.resp.BatchVisitRespVO;
import com.usdt.system.domain.resp.ProjectScopRespVO;
import com.usdt.system.domain.resp.SaleUserDetailsExportRespVO;
import com.usdt.system.domain.resp.SaleUserDetailsRespVO;
import com.usdt.system.domain.resp.SalesCountRespVO;
import com.usdt.system.domain.resp.SalesDataRespVO;
import com.usdt.system.domain.resp.SignUserRespVo;
import com.usdt.system.dto.cp.ClueUserExcelDTO;
import com.usdt.system.dto.cp.SignSourceExcelDTO;
import com.usdt.system.dto.cp.SignUserExcelDTO;
import com.usdt.system.dto.cp.VisitUserExcelDTO;

public interface SalesCountService {
	
	/**项目筛选
	 * @return
	 */
	List<ProjectScopRespVO> projectScop();

	/**线索人员统计
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	SalesCountRespVO getClueUserCount(String startDate, String endDate, List<String> deptIds);

	/**线索人员统计-下钻
	 * @param startDate
	 * @param endDate
	 * @param deptIds
	 * @param id
	 * @return
	 */
	IPage<BatchClueRespVO> getClueUserData(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);
	
	List<ClueUserExcelDTO> getClueUserDataExport(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);

	/**销售人员统计
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	SalesCountRespVO getVisitUserCount(String startDate, String endDate, List<String> deptIds);

	/**销售人员统计-下钻
	 * @param startDate
	 * @param endDate
	 * @param deptIds
	 * @param id
	 * @return
	 */
	IPage<BatchVisitRespVO> getVisitUserData(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);
	List<VisitUserExcelDTO> getVisitUserDataExport(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);

	/**线索渠道统计
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	SalesCountRespVO getClueSourceCount(String startDate, String endDate, List<String> deptIds);
	
	/**线索渠道统计-下钻
	 * @param startDate
	 * @param endDate
	 * @param deptIds
	 * @param id
	 * @return
	 */
	IPage<BatchClueRespVO> getClueSourceData(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);
	List<ClueUserExcelDTO> getClueSourceDataExport(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);

	/**销售渠道统计
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	SalesCountRespVO getVisitSourceCount(String startDate, String endDate, List<String> deptIds);

	/**销售渠道统计-下钻
	 * @param startDate
	 * @param endDate
	 * @param deptIds
	 * @param id
	 * @return
	 */
	IPage<BatchVisitRespVO> getVisitSourceData(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);
	List<VisitUserExcelDTO> getVisitSourceDataExport(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);

	
	/**首签人员统计
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	SalesCountRespVO getSignUserCount(String startDate, String endDate, List<String> deptIds);

	/**首签人员统计-下钻
	 * @param startDate
	 * @param endDate
	 * @param deptIds
	 * @param id
	 * @return
	 */
	IPage<SignUserRespVo> getSignUserData(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);
	List<SignUserExcelDTO> getSignUserDataExport(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);

	/**首签渠道统计
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	SalesCountRespVO getSignSourceCount(String startDate, String endDate, List<String> deptIds);

	/**首签人员统计-下钻
	 * @param startDate
	 * @param endDate
	 * @param deptIds
	 * @param id
	 * @return
	 */
	IPage<SignUserRespVo> getSignSourceData(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);
	List<SignSourceExcelDTO> getSignSourceDataExport(String startDate, String endDate, List<String> deptIds, String id,Integer pageNum,Integer pageSize,String conditions);

	/**销售明细
	 * @param startDate
	 * @param endDate
	 * @param deptIds
	 * @return
	 */
	SaleUserDetailsRespVO getUserDetails(String startDate, String endDate, List<String> deptIds);
	SaleUserDetailsExportRespVO getUserDetailsExport(String startDate, String endDate, List<String> deptIds);

	/**首签排名top10
	 * @param startDate
	 * @param endDate
	 * @param deptIds
	 * @return
	 */
	List<SalesDataRespVO> getSignUserRank(String startDate, String endDate, List<String> deptIds);

	/**首签排名top10--下钻
	 * @param startDate
	 * @param endDate
	 * @param deptIds
	 * @return
	 */
	IPage<SignUserRespVo> getSignUserRankDetails(String startDate, String endDate, List<String> deptIds,Integer pageNum,Integer pageSize,String conditions);
	List<SignUserExcelDTO> getSignUserRankDetailsExport(String startDate, String endDate, List<String> deptIds,Integer pageNum,Integer pageSize,String conditions);

}
